// Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See License.md in the repository root for more information.
// Ported from https://github.com/dotnet/clangsharp/blob/main/sources/libClangSharp

namespace ClangSharp.Interop;

public enum CX_TypeClass
{
    CX_TypeClass_Invalid,
    CX_TypeClass_Adjusted,
    CX_TypeClass_Decayed,
    CX_TypeClass_ConstantArray,
    CX_TypeClass_ArrayParameter,
    CX_TypeClass_DependentSizedArray,
    CX_TypeClass_IncompleteArray,
    CX_TypeClass_VariableArray,
    CX_TypeClass_Atomic,
    CX_TypeClass_Attributed,
    CX_TypeClass_BTFTagAttributed,
    CX_TypeClass_BitInt,
    CX_TypeClass_BlockPointer,
    CX_TypeClass_CountAttributed,
    CX_TypeClass_Builtin,
    CX_TypeClass_Complex,
    CX_TypeClass_Decltype,
    CX_TypeClass_Auto,
    CX_TypeClass_DeducedTemplateSpecialization,
    CX_TypeClass_DependentAddressSpace,
    CX_TypeClass_DependentBitInt,
    CX_TypeClass_DependentName,
    CX_TypeClass_DependentSizedExtVector,
    CX_TypeClass_DependentTemplateSpecialization,
    CX_TypeClass_DependentVector,
    CX_TypeClass_Elaborated,
    CX_TypeClass_FunctionNoProto,
    CX_TypeClass_FunctionProto,
    CX_TypeClass_HLSLAttributedResource,
    CX_TypeClass_InjectedClassName,
    CX_TypeClass_MacroQualified,
    CX_TypeClass_ConstantMatrix,
    CX_TypeClass_DependentSizedMatrix,
    CX_TypeClass_MemberPointer,
    CX_TypeClass_ObjCObjectPointer,
    CX_TypeClass_ObjCObject,
    CX_TypeClass_ObjCInterface,
    CX_TypeClass_ObjCTypeParam,
    CX_TypeClass_PackExpansion,
    CX_TypeClass_PackIndexing,
    CX_TypeClass_Paren,
    CX_TypeClass_Pipe,
    CX_TypeClass_Pointer,
    CX_TypeClass_LValueReference,
    CX_TypeClass_RValueReference,
    CX_TypeClass_SubstTemplateTypeParmPack,
    CX_TypeClass_SubstTemplateTypeParm,
    CX_TypeClass_Enum,
    CX_TypeClass_Record,
    CX_TypeClass_TemplateSpecialization,
    CX_TypeClass_TemplateTypeParm,
    CX_TypeClass_TypeOfExpr,
    CX_TypeClass_TypeOf,
    CX_TypeClass_Typedef,
    CX_TypeClass_UnaryTransform,
    CX_TypeClass_UnresolvedUsing,
    CX_TypeClass_Using,
    CX_TypeClass_Vector,
    CX_TypeClass_ExtVector,
    CX_TypeClass_TypeLast = CX_TypeClass_ExtVector,
    CX_TypeClass_TagFirst = CX_TypeClass_Record,
    CX_TypeClass_TagLast = CX_TypeClass_Enum,
}
